package com.zzz.system.service.question;

import com.zzz.system.domain.question.dto.QuestionAddDTO;
import com.zzz.system.domain.question.dto.QuestionEditDto;
import com.zzz.system.domain.question.dto.QuestionQueryDTO;
import com.zzz.system.domain.question.vo.QuestionDetailVO;
import com.zzz.system.domain.question.vo.QuestionVo;
import jakarta.validation.constraints.NotNull;

import java.util.List;

/**
 * @BelongsProject: oj-project
 * @BelongsPackage: com.zzz.system.service
 * @Author: zhai
 * @CreateTime: 2025-10-15  20:15
 * @Description: TODO
 * @Version: 1.0
 */
public interface QuestionService {
    /**
     * @description: 查询问题列表
     * @author: zhai
     * @date: 2025/10/18 14:11
     * @param: [questionQueryDTO]
     * @return: java.util.List<com.zzz.system.domain.question.vo.QuestionVo>
     **/
    List<QuestionVo> list(QuestionQueryDTO questionQueryDTO);
    /**
     * @description: 添加问题
     * @author: zhai
     * @date: 2025/10/18 14:11
     * @param: [questionAddDTO]
     * @return: boolean
     **/
    boolean add(QuestionAddDTO questionAddDTO);
    /**
     * @description: 获取问题详细信息
     * @author: zhai
     * @date: 2025/10/19 12:49
     * @param: [questionEditDto]
     * @return: com.zzz.system.domain.question.vo.QuestionDetailVO
     **/
    QuestionDetailVO detail(Long questionId);
    /**
     * @description: 编辑问题
     * @author: zhai
     * @date: 2025/10/19 14:29
     * @param: [questionId]
     * @return: int
     **/
    int edit(QuestionEditDto questionEditDto);
    /**
     * @description: 删除问题
     * @author: zhai
     * @date: 2025/10/19 15:22
     * @param: [questionId]
     * @return: int
     **/
    int delete(Long questionId);
}
